/***********************************************
 This file is part of redia-library-app-ios.
 
 Copyright (c) 2012, 2013 Redia A/S
 
 Redia-library-app-ios is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation, either version 3 of the License, or
 (at your option) any later version.
 
 Redia-library-app-ios is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with redia-library-app-ios.  If not, see <http://www.gnu.org/licenses/>.
 
 *********************************************** */


#import "MultiLineLabel.h"

@implementation MultiLineLabel

- (id)initWithFrame:(CGRect)frame {
	if (self = [super initWithFrame:frame]) {
		self.verticalAlign=MultiLineLabelVerticalAlignMid;
	}
	return self;
}

- (void)setVerticalAlign:(MultiLineLabelVerticalAlign)align {
	_verticalAlign=align;
	[self setNeedsDisplay];
}

- (void)drawTextInRect:(CGRect)requestedRect {
	CGRect confinedRect=[self textRectForBounds:requestedRect limitedToNumberOfLines:self.numberOfLines];
	[super drawTextInRect:confinedRect];
}

- (CGRect)textRectForBounds:(CGRect)bounds limitedToNumberOfLines:(NSInteger)numberOfLines {
	CGRect result_rect=[super textRectForBounds:bounds limitedToNumberOfLines:numberOfLines];
	switch (self.verticalAlign) {
		case MultiLineLabelVerticalAlignTop:
			result_rect.origin.y=bounds.origin.y;
			break;
		case MultiLineLabelVerticalAlignMid:
		default:
			result_rect.origin.y=bounds.origin.y + (bounds.size.height - result_rect.size.height) / 2.0;
            break;
		case MultiLineLabelVerticalAlignBottom:
			result_rect.origin.y=bounds.origin.y + bounds.size.height - result_rect.size.height;
			break;
	}
	return result_rect;
}

@end
